package com.th.common.mybatis.type;

import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
import com.fasterxml.jackson.core.type.TypeReference;
import com.th.common.utils.JsonUtils;


import java.util.Set;

/**
 *
 *
 * 在我们将字符串反序列化为 Set 并且泛型为 String 时，如果每个元素的数值太小，会被处理成 Integer 类型，导致可能存在隐性的 BUG。
 * @author tuhang
 */
public class JsonStringSetTypeHandler extends AbstractJsonTypeHandler<Object> {


    private static final TypeReference<Set<String>> typeReference = new TypeReference<Set<String>>(){};

    @Override
    protected Object parse(String json) {
        return JsonUtils.parseObject(json, typeReference);
    }

    @Override
    protected String toJson(Object obj) {
        return JsonUtils.toJsonString(obj);
    }
}
